﻿using Lanbt.Core.Entity.Dto;
using Lanbt.Core.Entity.Dto.lanbt_system_config;
using Lanbt.Core.Entity.Enums;

namespace Lanbt.Core.Service.SqlService.IService
{
    /// <summary>
    /// 系统配置服务
    /// </summary>
    public interface IConfigService
    {
        /// <summary>
        /// 获取系统配置信息
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        Task<ResultOutput> GetSystemConfig(SystemConfigKey key);

        /// <summary>
        /// 获取用户配置
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        Task<ResultOutput> GetUserConfig(UserConfigKey key);

        /// <summary>
        /// 添加系统配置
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task<ResultOutput> OperationConfig(ConfigInputDto input);

        /// <summary>
        /// 删除系统配置
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        Task<ResultOutput> DeleteSystemConfig(SystemConfigKey key);

        /// <summary>
        /// 删除用户配置
        /// </summary>
        /// <param name="key"></param>
        /// <returns></returns>
        Task<ResultOutput> DeleteUserConfig(UserConfigKey key);
    }
}
